Message generation method and apparatus, and message processing method and apparatus

ABSTRACT

A message generation method, a message processing method, a message generation apparatus, and a message processing apparatus are provided. The message generation method includes: obtaining, by a first device, a segment identifier list SID list, where the SID list includes a plurality of segment identifiers SIDs, the first N bits of the plurality of SIDs are the same, and N is a positive integer; generating, by the first device, a first message based on the SID list, where the first message includes a first part and a second part, the first part includes the first N bits of the plurality of SIDs, and the second part includes bit N+1 to bit 128 of each of the plurality of SIDs; and sending, by the first device, the first message to a second device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.17/151,662, filed on Jan. 19, 2021, which claims priority to ChinesePatent Application No. 202010066033.1, filed on Jan. 20, 2020. Both ofthe aforementioned applications are hereby incorporated by reference intheir entireties.

TECHNICAL FIELD

This disclosure relates to the communications field, and in particular,to a message generation method, a message processing method, a messagegeneration apparatus, and a message processing apparatus.

BACKGROUND

Internet protocol version 6 (IPv6) segment routing (SRv6) is a protocoldesigned to forward IPv6 packets over a network based on a sourcerouting concept. The protocol defines a forwarding path represented by asegment identifier list (SID list). An SID list includes a plurality ofsegment identifiers (SID), and each SID represents a node or link on aforwarding path. SIDs that are arranged in order in the SID list mayrepresent nodes or links along the forwarding path.

In an SRv6 network, a controller may calculate an SID list and deliverthe SID list to a forwarding device in the network. The forwardingdevice also needs to report status or policy information of each SID inthe SID list to the controller. Therefore, a message exchanged betweenthe controller and the network forwarding device may need to carry theSID list.

However, currently, the quantity of SID lists carried in a messageexchanged between a controller and a headend is limited, andtransmission efficiency is low; and when the quantity of SID lists isgreater than the quantity of SID lists that can be carried in themessage, an SID list may be truncated, and data may be lost, or anexcessively long message may be not reported. Consequently, a messagetransmission failure occurs.

SUMMARY

Embodiments of this disclosure provide a message generation method, amessage processing method, a message generation apparatus, and a messageprocessing apparatus, so as to increase the quantity of SID lists thatcan be carried in a message, thereby improving efficiency and a successrate of message transmission.

According to a first aspect, an embodiment of this disclosure provides amessage generation method. The method includes the following steps:First, a first device obtains an SID list, where the SID list includes aplurality of SIDs, the first N bits of the plurality of SIDs are thesame, and N is a positive integer. Next, the first device generates afirst message based on the SID list, where the first message includes afirst part and a second part, the first part includes the first N bitsof the plurality of SIDs, and the second part includes bit N+1 to bit128 of each of the plurality of SIDs. Finally, the first device sendsthe first message to a second device. After receiving the first message,the second device may obtain each SID based on a common part of theplurality of SIDs in the first message, namely, the first N bits, andbit N+1 to bit 128 of each SID. In this solution, the first message nolonger carries 128 bits of each SID in the SID list, but removes acommon part from a plurality of SIDs, and stores only the remaining partof each SID, so that the length of the SID list in the message isreduced, and the first message can carry a larger quantity of SID liststhan a conventional manner, thereby improving efficiency and a successrate of message transmission.

Optionally, the second part further includes a position indicatorindicating a position of the first N bits of the plurality of SIDs inthe first part, and the second device may obtain the first N bits of theplurality of SIDs based on the position indicator, and then obtain theSID list based on the first N bits of the plurality of SIDs and bit N+1to bit 128 of each of the plurality of SIDs, so that the second deviceobtains a complete SID list.

Optionally, the first part further includes a length of the first Nbits, so that the second device can accurately read the first N bits ofthe SIDs.

According to a second aspect, an embodiment of this disclosure providesa message processing method. The method includes the following steps:First, a second device receives a first message from a first device,where the first message includes a first part and a second part, thefirst part includes the first N bits of a plurality of SIDs in an SIDlist, that is, a common part of the plurality of SIDs; and the secondpart includes bit N+1 to bit 128 of each of the plurality of SIDs, and Nis a positive integer. Next, the second device obtains the SID listbased on the first part and the second part. Because the message storesonly the remaining part of each SID other than the common part, a lengthoccupied by the plurality of SIDs is reduced, so that the first messagecan carry a larger quantity of SID lists, thereby improving efficiencyand a success rate of message transmission.

Optionally, the second part further includes a position indicatorindicating a position of the first N bits of the plurality of SIDs inthe first part. Then, the second device may obtain the first N bits ofthe plurality of SIDs based on the position indicator of the first Nbits of the plurality of SIDs in the first part, and the second deviceobtains the SID list based on the first N bits of the plurality of SIDsand bit N+1 to bit 128 of each of the plurality of SIDs, so that thesecond device obtains a complete SID list.

Optionally, the first part further includes a length of the first Nbits, so that the second device can accurately read the first N bits ofthe SIDs.

According to a third aspect, an embodiment of this disclosure provides amessage generation method. The method includes the following steps:First, a first device obtains an SID list identifier. Next, the firstdevice generates a first message, where the first message includes anSID list identifier, where the SID list identifier is used to replaceall SIDs in an SID list. Finally, the first device sends the firstmessage to a second device. Because a length of the SID list identifieris less than a sum of lengths of all SIDs in the SID list, the firstmessage can carry a larger quantity of SID lists, thereby improvingefficiency and a success rate of message transmission.

Optionally, the method further includes: The first device sends acorrespondence to the second device, where the correspondence includes acorrespondence between the SID list and the SID list identifier, so thatthe second device can generate the SID list based on the correspondenceand the first message.

According to a fourth aspect, an embodiment of this disclosure providesa message processing method. The method includes the following steps:First, a second device receives a first message from a first device,where the first message includes a segment identifier list SID listidentifier. Next, the second device obtains an SID list based on the SIDlist identifier and a correspondence, where the correspondence includesa correspondence between the SID list and the SID list identifier. Inthe first message, the SID list identifier is used to replace all SIDsin the SID list, so that a length of the SID list is reduced. Inaddition, because the second device stores the correspondence betweenthe SID list and the SID list identifier, the second device can obtainthe SID list from the first message based on the correspondence, so thatthe SID list is successfully obtained.

Optionally, the method further includes: The second device receives acorrespondence sent by the first device, where the correspondenceincludes a correspondence between an SID list and an SID listidentifier, so that the second device can generate the SID list based onthe correspondence and the first message.

According to a fifth aspect, an embodiment of this disclosure provides amessage generation method. The method includes the following steps:First, a first device obtains a locator identifier corresponding to eachSID in an SID list, where the locator identifier is used to identify alocator part of an SID corresponding to the locator identifier, and alength of the locator identifier is less than a length of the locatorpart. Next, the first device generates a first message, where the firstmessage includes a locator identifier corresponding to each SID in theSID list and a function part of each SID. Finally, the first devicesends the first message to a second device. Because the length of thelocator identifier is less than the length of the locator part, a lengthof the SIDs in the first message is less than 128 bits, so that thelength of the SID list is reduced. Therefore, the first message cancarry a larger quantity of SID lists, thereby improving efficiency and asuccess rate of message transmission.

Optionally, the method further includes: The first device sends acorrespondence to the second device, where the correspondence includes acorrespondence between the locator identifier and the locator part ofeach SID, so that the second device obtains the SID list based on thecorrespondence and the first message.

According to a sixth aspect, an embodiment of this disclosure provides amessage processing method. The method includes the following steps:First, a second device receives a first message from a first device,where the first message includes a locator identifier corresponding toeach SID in an SID list and a function part of the SID, the locatoridentifier is used to identify a locator part of an SID corresponding tothe locator identifier, and a length of the locator identifier is lessthan a length of the locator part. Next, the second device obtains thelocator part of each SID based on the locator identifier correspondingto each SID and a correspondence, where the correspondence includes acorrespondence between the locator identifier and the locator part ofeach SID. Finally, the second device obtains the SID list based on thelocator part of each SID and a function part of each SID. Because alength of the locator identifier is less than a length of the locatorpart, the length of the SIDs carried in the first message is less than128 bits. This increases the quantity of SID lists carried in the firstmessage, thereby improving efficiency and a success rate of messagetransmission. In addition, the second device may determine the locatorpart of the SID corresponding to the locator identifier of the SIDcarried in the first message based on the correspondence between thelocator identifier of the SID and the locator part of the SID, andcombine the locator part with the function part in the first message toobtain the SID. In this way, the SID is successfully obtained, and thenthe SID list is obtained.

Optionally, the method further includes: The second device receives acorrespondence from the first device, so as to obtain the SID list basedon the correspondence and the first message.

With reference to the embodiments of the first aspect, the third aspect,and the fifth aspect, in a first possible implementation, the firstdevice is a controller, and the second device is a network forwardingdevice. Then, the message generation method further includes thefollowing step: The first device receives segment descriptioninformation of at least one of a plurality of SIDs from the seconddevice, where the segment description information is descriptioninformation of a segment corresponding to the SID, such as informationabout an algorithm identifier corresponding to the segment. In a secondpossible implementation, the first device is a network forwardingdevice, and the second device is a controller. Then, the first messagein the message generation method further includes segment descriptioninformation of at least one of the plurality of SIDs.

With reference to the embodiments of the second aspect, the fourthaspect, and the sixth aspect, in a first possible implementation, thefirst device is a controller, and the second device is a networkforwarding device. Then, the first message in the message generationmethod further includes segment description information of at least oneof the plurality of SIDs. In a second possible implementation, the firstdevice is a network forwarding device, and the second device is acontroller. Then, the message generation method further includes thefollowing step: The first device receives segment descriptioninformation of at least one of a plurality of SIDs from the seconddevice, where the segment description information is descriptioninformation of a segment corresponding to the SID, such as informationabout an algorithm identifier corresponding to the segment.

According to a seventh aspect, an embodiment of this disclosure providesa message generation apparatus. The apparatus is applied to a firstdevice, and the apparatus includes: an acquisition unit, configured toobtain a segment identifier list SID list, where the SID list includes aplurality of segment identifiers SIDs, the first N bits of the pluralityof SIDs are the same, and N is a positive integer; a generation unit,configured to generate a first message based on the SID list, where thefirst message includes a first part and a second part, the first partincludes the first N bits of the plurality of SIDs, and the second partincludes bit N+1 to bit 128 of each of the plurality of SIDs; and asending unit, configured to send the first message to a second device.

Optionally, the second part further includes a position indicatorindicating a position of the first N bits of the plurality of SIDs inthe first part.

Optionally, the first part further includes a length of the first Nbits.

According to an eighth aspect, an embodiment of this disclosure providesa message processing apparatus. The apparatus is applied to a seconddevice, and the apparatus includes: a receiving unit, configured toreceive a first message from a first device, where the first message isused to carry a segment identifier list SID list, the SID list includesa plurality of segment identifiers SIDs, the first N bits of theplurality of SIDs are the same, N is a positive integer, the firstmessage includes a first part and a second part, the first part includesthe first N bits of the plurality of SIDs in the segment identifier listSID list, and the second part includes bit N+1 to bit 128 of each of theplurality of SIDs; and an acquisition unit, configured to obtain the SIDlist based on the first part and the second part.

Optionally, the second part further includes a position indicator of thefirst N bits of the plurality of SIDs in the first part; and

the acquisition unit is configured to: obtain the first N bits of theplurality of SIDs based on the position indicator of the first N bits ofthe plurality of SIDs in the first part; and obtain the SID list basedon the first N bits of the plurality of SIDs and bit N+1 to bit 128 ofeach of the plurality of SIDs.

Optionally, the first part further includes a length of the first Nbits.

According to a ninth aspect, an embodiment of this disclosure provides amessage generation apparatus. The apparatus is applied to a firstdevice, and the apparatus includes: an acquisition unit, configured toobtain a segment identifier list SID list identifier, where the SID listidentifier corresponds to an SID list; a generation unit, configured togenerate a first message, where the first message includes the SID listidentifier; and a sending unit, configured to send the first message toa second device.

Optionally, the sending unit is further configured to send acorrespondence to the second device, where the correspondence includes acorrespondence between the SID list and the SID list identifier.

According to a tenth aspect, an embodiment of this disclosure provides amessage processing apparatus. The apparatus is applied to a seconddevice, and the apparatus includes: a receiving unit, configured toreceive a first message from a first device, where the first messageincludes a segment identifier list SID list identifier, and the SID listidentifier corresponds to an SID list; and an acquisition unit,configured to obtain the SID list based on the SID list identifier and acorrespondence, where the correspondence includes a correspondencebetween the SID list and the SID list identifier.

Optionally, the receiving unit is further configured to receive acorrespondence from the first device.

According to an eleventh aspect, an embodiment of this disclosureprovides a message generation apparatus. The apparatus is applied to afirst device, and the apparatus includes: an acquisition unit,configured to obtain a locator identifier corresponding to each segmentidentifier SID in a segment identifier list SID list, where the locatoridentifier is used to identify a locator part of an SID corresponding tothe locator identifier, and a length of the locator identifier is lessthan a length of the locator part;

a generation unit, configured to generate a first message, where thefirst message includes a locator identifier corresponding to each SID inthe SID list and a function part of each SID; and a sending unit,configured to send the first message to a second device.

Optionally, the sending unit is further configured to send acorrespondence to the second device, where the correspondence includes acorrespondence between the locator identifier and the locator part ofeach SID.

According to a twelfth aspect, an embodiment of this disclosure providesa message processing apparatus. The apparatus is applied to a seconddevice, and the apparatus includes: a receiving unit, configured toreceive a first message from a first device, where the first messageincludes a locator identifier corresponding to each segment identifierSID in a segment identifier list SID list and a function part of theSID, the locator identifier is used to identify a locator part of an SIDcorresponding to the locator identifier, and a length of the locatoridentifier is less than a length of the locator part; a determiningunit, configured to obtain the locator part of each SID based on thelocator identifier corresponding to each SID and a correspondence, wherethe correspondence includes a correspondence between the locatoridentifier and the locator part of each SID; and an acquisition unit,configured to obtain the SID list based on the locator part of each SIDand the function part of each SID.

Optionally, the receiving unit is further configured to receive acorrespondence from the first device.

With reference to the embodiments of the seventh aspect, the ninthaspect, and the eleventh aspect, in a first possible implementation, thefirst device is a controller, and the second device is a networkforwarding device. Then, the message generation apparatus furtherincludes a receiving unit, configured to receive segment descriptioninformation of at least one of a plurality of SIDs from the seconddevice, where the segment description information is descriptioninformation of a segment corresponding to the SID, such as informationabout an algorithm identifier corresponding to the segment. In a secondpossible implementation, the first device is a network forwardingdevice, and the second device is a controller. Then, the first messagein the message generation apparatus further includes segment descriptioninformation of at least one of the plurality of SIDs.

With reference to the embodiments of the eighth aspect, the tenthaspect, and the twelfth aspect, in a first possible implementation, thefirst device is a controller, and the second device is a networkforwarding device. Then, the first message in the message generationapparatus further includes segment description information of at leastone of the plurality of SIDs. In a second possible implementation, thefirst device is a network forwarding device, and the second device is acontroller. Then, the receiving unit in the message generation apparatusis further configured to receive segment description information of atleast one of a plurality of SIDs from the second device, where thesegment description information is description information of a segmentcorresponding to the SID, such as information about an algorithmidentifier corresponding to the segment.

Further, optionally, the first message may be a border gateway protocol(BGP) update message.

According to a thirteenth aspect, an embodiment of this disclosureprovides a message processing device. The device includes: a processorand a memory, where the memory is configured to store an instruction;and the processor is configured to execute the instruction in thememory, so as to perform the foregoing message generation method ormessage processing method.

According to a fourteenth aspect, an embodiment of this disclosureprovides a computer-readable storage medium, where the computer-readablestorage medium includes an instruction, and when instruction is run on acomputer, the computer is enabled to perform the foregoing messagegeneration method or message processing method.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic diagram of a format of a TLV field carrying an SIDlist in a conventional message;

FIG. 2 is a schematic structural diagram of a network system 100according to an embodiment of this disclosure;

FIG. 3 is a schematic flowchart of a message generation method accordingto an embodiment of this disclosure;

FIG. 4 is a schematic diagram of a TLV carrying an SID list in a BGPupdate message according to an embodiment of this disclosure;

FIG. 5 is another flowchart of a message generation method according toan embodiment of this disclosure;

FIG. 6 is a schematic diagram of a TLV carrying an SID list identifierin a BGP update message according to an embodiment of this disclosure;

FIG. 7 is another flowchart of a message generation method according toan embodiment of this disclosure;

FIG. 8 is a schematic diagram of a TLV carrying an SID list in a BGPupdate message according to an embodiment of this disclosure;

FIG. 9 is a schematic structural diagram of a message generationapparatus 900 according to an embodiment of this disclosure;

FIG. 10 is a schematic structural diagram of a message processingapparatus 1000 according to an embodiment of this disclosure;

FIG. 11 is a schematic structural diagram of a message generationapparatus 1100 according to an embodiment of this disclosure;

FIG. 12 is a schematic structural diagram of a message processingapparatus 1200 according to an embodiment of this disclosure;

FIG. 13 is a schematic structural diagram of a message generationapparatus 1300 according to an embodiment of this disclosure;

FIG. 14 is a schematic structural diagram of a message processingapparatus 1400 according to an embodiment of this disclosure; and

FIG. 15 is a schematic structural diagram of a device according to anembodiment of this disclosure.

DESCRIPTION OF EMBODIMENTS

FIG. 1 is a schematic diagram of a format of a type-length-value (TLV)field carrying an SID list in a conventional message. The TLV fieldincludes four sub TLV fields (the four sub TLV fields are distinguishedin FIG. 1 by color depth), where the first sub TLV field is of type1205, indicating that the sub TLV field is a sub TLV related to an SRsegment list; and the last three sub TLV fields are of type 1206,indicating that the sub TLV fields are sub TLVs related to an SRsegment.

The first sub TLV field further includes a length field, a flags field,a reserved field, a multi-topology identifier (MTID) field, an algorithmfield, and a weight field. The first sub TLV field occupies a total of16 bytes. The flags field carries attribute information and/or statusinformation of a segment list, for example, whether a path correspondingto an SID list is an explicit path or a dynamic path, or whether allSIDs in an SID list belong to a specific algorithm.

Each of the last three sub TLV fields further includes a length field, areserved field, a flags field, an SID field, and a segment descriptorfield. Each sub TLV field occupies 25 bytes. The flags field carriesattribute information and/or status information of a segment, forexample, whether an SID is verified.

In a conventional message, an SID field carries an IPv6 address of anetwork forwarding device, which is a total of 128 bits. The SID fieldgenerally includes a locator field and a function field. For example,for an SID with an IPv6 address of “2000::1::1”, the locator field maycarry “2000::1”, and the function field may carry “::1”.

A Locator is an IPv6 network segment under which all IPv6 addresses canbe assigned as SRv6 SIDs. After a node configures the Locator, a systemgenerates a Locator network segment route, through which the local nodecan be located, and all SIDs published by the local node can be reachedthrough the Locator network segment route.

Currently, RFC 4271 specifies that a length of a border gateway protocolmessage is 4K bytes. Then, when an SID list includes 10 SIDs, if othercontent of the TLV of the SID list and content of the segment descriptorfield in the SID list are not considered, a length of the SID list is25×10+16=266 bytes, and the message can carry a maximum of 4K/266≈15 SIDlists (it is assumed that the SID lists are of the same length). Whenmore than 15 SID lists need to be carried, data exceeding 4K bytes needsto be truncated. Consequently, data loss occurs, or the message is toolong to be sent, resulting in a message transmission failure.

To resolve the foregoing technical problem, embodiments of thisdisclosure provide a message generation method and a message processingmethod, so as to increase the quantity of SID lists that can be carriedin a message, and increase a success rate of message transmission.

For ease of understanding, the following first describes an applicationscenario of the embodiments of this disclosure.

FIG. 2 is a schematic structural diagram of a network system 100according to an embodiment of this disclosure.

The network system 100 shown in FIG. 2 includes a terminal device 101, aterminal device 102, a network forwarding device 201, a networkforwarding device 202, a network forwarding device 203, a networkforwarding device 204, and a controller 301. The terminal device 101 isconnected to the network forwarding device 201; the network forwardingdevice 201 is connected to the network forwarding device 202; thenetwork forwarding device 202 is connected to the network forwardingdevice 203; the network forwarding device 203 is connected to theterminal device 102; the network forwarding device 204 is connected tothe network forwarding device 201, the network forwarding device 202,and the network forwarding device 203; and the controller 301 isconnected to the network forwarding device 204.

Each of the terminal device 101 and the terminal device 102 may also bereferred to as user equipment (UE), a mobile station (MS), a mobileterminal (MT), a terminal, or the like, and is a device for providingvoice and/or data connectivity to a user, or a chip disposed in thedevice, for example, a handheld device or a vehicle-mounted devicehaving a wireless connection function. Currently, some examples of theterminal device include a mobile phone, a desktop computer, a tabletcomputer, a notebook computer, a palmtop computer, a mobile internetdevice (MID), a wearable device, a virtual reality (VR) device, anaugmented reality (AR) device, a wireless terminal in industrialcontrol, a wireless terminal in self driving, a wireless terminal inremote medical surgery, a wireless terminal in a smart grid, a wirelessterminal in transportation safety, a wireless terminal in a smart city,a wireless terminal in a smart home, and a home gateway devicesupporting 5G access (5G-RG).

Each of the network forwarding device 201, the network forwarding device202, and the network forwarding device 203 may be a forwarding devicesuch as a router or a switch.

The network forwarding device 204 is, for example, a route reflector(RR).

The controller 301 may be, for example, a software-defined networking(SDN) controller.

In this embodiment of this disclosure, the controller 301 may obtaintopology information of the network forwarding device 201, the networkforwarding device 202, and the network forwarding device 203 by usingthe network forwarding device 204, generate an SID list indicating aforwarding path based on the topology information, and send a first BGPupdate message to the network forwarding device 201 by using the networkforwarding device 204, where the first BGP update message carries theinformation indicating the SID list, and SIDs included in the SID listrepresent the network forwarding device 201, the network forwardingdevice 202, and the network forwarding device 203, respectively, and theSID list is used to transmit a message to the terminal device 102 forthe terminal device 101.

After receiving the first BGP update message, the network forwardingdevice 201 forwards the message based on a path indicated by the SIDlist in the first BGP update message.

In addition, the network forwarding device 201 may generate a second BGPupdate message, and send the message to the controller by using thenetwork forwarding device 204, where the second BGP update messagecarries information representing an SID list and segment descriptioninformation, and the segment description information may be carried inthe segment descriptor field of the second BGP update message. Thesegment description information may include, for example, informationabout an algorithm identifier, where the algorithm identifier may beused to perform network fragmentation. The segment descriptioninformation may also include, for example, information about a networkforwarding device and/or status information of a tunnel between networkforwarding devices, where the information about a network forwardingdevice includes, for example, a BGP router identifier (BGP router ID),an autonomous system number, and an endpoint. The status information ofa tunnel is information indicating a status of the tunnel, for example,an active (UP) state, or a failed (Down) state.

The network forwarding device 204 may transparently transmit the BGPupdate message between the controller 301 and the network forwardingdevice 201, or may parse a received BGP update message and then generatea new BGP update message for sending. A parsing process includesconverting a message representing an SID list in the BGP update messageto the SID list. A process of generating a new BGP update messageincludes converting an SID list to a message representing the SID list.

Certainly, it can be understood that in actual application, the networksystem 100 may not include the network forwarding device 204; that is,the controller is directly connected to the network forwarding device201 to the network forwarding device 203. For example, the controller301 may obtain topology information of the network forwarding device201, the network forwarding device 202, and the network forwardingdevice 203 directly without using the network forwarding device 204.

FIG. 3 is a schematic flowchart of a message generation method accordingto an embodiment of this disclosure.

The following describes the message generation method provided in thisembodiment of this disclosure with reference to FIG. 2 and FIG. 3 . Themethod includes the following steps:

S101: A first device obtains an SID list, where the SID list includes aplurality of SIDs, and the first N bits of the plurality of SIDs are thesame.

In this embodiment of this disclosure, the first device may be, forexample, the controller 301 in the embodiment shown in FIG. 2 , and asecond device mentioned below may be, for example, the networkforwarding device 201 in the embodiment shown in FIG. 2 . Alternatively,the first device may be, for example, the network forwarding device 201in the embodiment shown in FIG. 2 , and the second device mentionedbelow may be the controller 301 in the embodiment shown in FIG. 2 .Alternatively, the first device may be, for example, the networkforwarding device 201 in the embodiment shown in FIG. 2 , and the seconddevice may be, for example, the network forwarding device 204 in theembodiment shown in FIG. 2 . Alternatively, the first device may be, forexample, the network forwarding device 204 in the embodiment shown inFIG. 2 , and the second device may be, for example, the networkforwarding device 201 in the embodiment shown in FIG. 2 .

In this embodiment of this disclosure, an SID includes a locator partand a function part, and the locator part and the function part occupy atotal of 128 bits. The first N bits are counted from the first bit ofthe locator part of the SID, and N is an integer greater than or equalto 1 and less than 128. In this embodiment of this disclosure, the firstN bits of an SID refer to content of the first N bits of the SID.

In this embodiment of this disclosure, the first device obtains an SIDlist, where the first N bits of all of the plurality of SIDs included inthe SID list are the same.

For example, Table 1 shows a plurality of SIDs included in the SID listobtained by the first device.

TABLE 1 SID list1 SID1 2000::1::1 SID2 2000::2::1 SID3 2000::3::1 SIDlist2 SID4 2001::1::1 SID5 2001::2::1

In Table 1, SID list1 includes SID1, SID2, and SID3, where SID1 is“2000::1::1”, SID2 is “2000::2::1”, and SID3 is “2000::3::1”. The first120 bits of the three SIDs are the same and are “2000::”.

In Table 1, SID list2 includes SID4 and SID5, where SID4 is“2001::1::1”, and SID5 is “2001::2::1”. The first 96 bits of the twoSIDs are the same and are “2001::”.

It should be noted that, that the first N bits of the plurality of SIDsare the same does not mean that bits N+1 of the plurality of SIDs aredifferent. That is, it is assumed that the first M bits of the pluralityof SIDs are the same but bits M+1 of the plurality of SIDs aredifferent. Then, N is greater than or equal to 1 and less than or equalto M.

S102: The first device generates a first message based on the SID list,where the first message includes a first part and a second part, thefirst part includes the first N bits of the plurality of SIDs, and thesecond part includes bit N+1 to bit 128 of each of the plurality ofSIDs.

In this embodiment of this disclosure, bit N+1 to bit 128 of an SIDrefer to content of bit N+1 to bit 128 of the SID.

In this embodiment of this disclosure, the first message is, forexample, the first BGP update message or the second BGP update messagein the embodiment shown in FIG. 2 . The first part and the second partin the first message may be one of the foregoing implementations ofrepresenting an SID list.

FIG. 4 is a schematic diagram of a TLV carrying an SID list in a BGPupdate message according to an embodiment of this disclosure.

In FIG. 4 , the first N bits of the plurality of SIDs are carried in thelocator field as a common part of the plurality of SIDs, and are placedbefore the SID list. Certainly, it can be understood that the commonpart may alternatively be placed at another position in the firstmessage. This is not specifically limited in this disclosure. Theremaining parts of the plurality of SIDs, that is, bit N+1 to bit 128,are carried in the function (Func for short) field of each sub TLV. Itcan also be understood that the foregoing locator field and Func fieldare not intended to limit names of fields carrying the first part andthe second part, and persons skilled in the art may also design thelocator field and the Func field based on an actual situation. If thefirst message carries a plurality of SID lists, the common parts of allof the plurality of SID lists may be placed together, for example, beplaced before the first SID list, or the common part of each SID listmay be placed before the respective SID list, and so on. This is notspecifically limited in this embodiment of this disclosure.

In this embodiment of this disclosure, the first part (marked in lightgray in FIG. 4 ) may include a length of the first N bits in addition tothe first N bits of a plurality of SIDs. For example, in FIG. 4 , thelength of the first N bits is carried in a prefix length field and isplaced before an SID list together with a locator field. Each locatorfield corresponds to one prefix length field. Certainly, the name andposition of the prefix length field are not intended to limit thetechnical solution of this disclosure, and persons skilled in the artmay also design the prefix length field based on an actual situation.

In this embodiment of this disclosure, the second part (marked in darkgray in FIG. 4 ) may include a position indicator in addition to theremaining part of each of the plurality of SIDs, where the positionindicator indicates the position of the first N bits of the plurality ofSIDs in the first message. For example, in FIG. 4 , the positionindicator is carried in a Locator Position (LocatorPos for short) fieldof the sub TLV of each SID, and each locator field corresponds to oneLocatorPos field. It can be understood that the name and position of theLocatorPos field in FIG. 4 are not intended to limit the technicalsolution of this disclosure, and persons skilled in the art may designthe LocatorPos field based on an actual situation.

With reference to Table 1 and FIG. 4 , the first message may include twolocator fields: a locator field 1 and a locator field 2, where thelocator field 1 carries the first N bits of “2000::” of SID list1, andlocator field 2 carries the first N bits of “2001::” of SID list2. Avalue of a prefix length field corresponding to the locator field 1 is120, and a value of a prefix length field corresponding to the locatorfield 2 is 100.

A value of the LocatorPos field included in SID1 in SID list1 is 1,which indicates a position of the locator field 1; and a value of theFunc field included in SID1 is “1::1”.

A value of the LocatorPos field included in SID2 in SID list1 is 1,which indicates a position of the locator field 1; and a value of theFunc field included in SID1 is “2::1”.

A value of the LocatorPos field included in SID3 in SID list1 is 1,which indicates a position of the locator field 1; and a value of theFunc field included in SID1 is “3::1”.

A value of the LocatorPos field included in SID4 in SID list2 is 2,which indicates a position of the locator field 2; and a value of theFunc field included in SID1 is “::1::1”.

A value of the LocatorPos field included in SID5 in SID list2 is 2,which indicates a position of the locator field 2; and a value of theFunc field included in SID1 is “::2::1”.

S103: The first device sends the first message to the second device.

S104: The second device receives the first message, and obtains the SIDlist based on the first part and the second part of the first message.

In this embodiment of this disclosure, because the first part includesthe first N bits of the plurality of SIDs in the SID list, and thesecond part includes bit N+1 to bit 128 of each of the plurality ofSIDs, each of the plurality of SIDs may be obtained by combining thefirst N bits and bit N+1 to bit 128. After obtaining the plurality ofSIDs included in the SID list, the SID list is generated based on asequence of the plurality of SIDs in the first message.

If the second part further includes the position indicator of the firstN bits of the plurality of SIDs in the first part, the second device mayobtain the first N bits of the plurality of SIDs based on the positionindicator, then obtain the plurality of SIDs based on the first N bitsof the plurality of SIDs and bit N+1 to bit 128 of each of the pluralityof SIDs, and then obtain the SID list based on the sequence of theplurality of SIDs in the first message.

For example, the first device may obtain the value “2000::” of thelocator field 1 based on the value “1” of the LocatorPos field includedin SID1, and obtain the value “2000::1::1” of SID1 by combining contentof the locator field and content of the Func field based on the value“1::1” of the Func field included in SID1.

For another example, the first device obtains the value “2001::” of thelocator field 2 based on the value “2” of the LocatorPos field includedin SID3, and obtains the value “2001::1::1” of SID3 by combining contentof the locator field and content of the Func field based on the value“::1::1” of the Func field included in SID3.

In this embodiment of this disclosure, the first N bits of the pluralityof SIDs are extracted and separately carried in a field as a commonpart. This differs from a conventional manner in which each SID includes128 bits, so that a length occupied by the SID list in the first messageis reduced as compared with the conventional manner, and the firstmessage can carry a larger quantity of SID lists than in theconventional manner, thereby improving efficiency and a success rate ofmessage transmission.

For example, it is assumed that one SID list includes 10 SIDs, the first15 bytes (that is, 120 bits) of all SIDs are the same, and the last byteof each SID is different from the last byte of any other SID. The prefixlength field occupies one byte, and then, the length of the SID list is10×10+15+16+1=132 bytes; and a message with a message length of 4K bytescan carry a maximum of 4K/132≈30 SID lists (it is assumed that all SIDlists are of the same length). As mentioned above, only a maximum of 15SID lists can be carried in the conventional manner. Therefore, thefirst message in this embodiment of this disclosure can carry a largerquantity of SID lists than in the conventional manner, thereby improvingefficiency of message transmission, reducing a risk that the message istruncated or not sent, and improving a success rate of messagetransmission.

FIG. 5 is another flowchart of a message generation method according toan embodiment of this disclosure.

The following describes the message generation method provided in thisembodiment of this disclosure with reference to FIG. 2 and FIG. 5 . Themethod includes the following steps:

S201: A first device obtains an SID list identifier.

In this embodiment of this disclosure, the first device may be, forexample, the controller 301 in the embodiment shown in FIG. 2 , and asecond device mentioned below may be, for example, the networkforwarding device 201 in the embodiment shown in FIG. 2 . Alternatively,the first device may be, for example, the network forwarding device 201in the embodiment shown in FIG. 2 , and the second device mentionedbelow may be the controller 301 in the embodiment shown in FIG. 2 .Alternatively, the first device may be, for example, the networkforwarding device 201 in the embodiment shown in FIG. 2 , and the seconddevice may be, for example, the network forwarding device 204 in theembodiment shown in FIG. 2 . Alternatively, the first device may be, forexample, the network forwarding device 204 in the embodiment shown inFIG. 2 , and the second device may be, for example, the networkforwarding device 201 in the embodiment shown in FIG. 2 .

When the first device is a controller, the first device may generate acorresponding identifier for the SID list. When the first device is anetwork forwarding device, the controller may deliver a correspondencebetween the SID list and the SID list identifier to the networkforwarding device in advance, so that the network forwarding deviceobtains the SID list identifier.

For example, Table 2 shows correspondences between an SID list and anSID list identifier.

TABLE 2 SID list identifier A SID1 SID2 SID3 SID list identifier B SID4SID5

In Table 2, an SID list identifier A is an SID list identifier includingSID1, SID2, and SID3; and an SID list identifier B is an SID listidentifier including SID4 and SID5.

In this embodiment of this disclosure, the SID list identifier may be acharacter, a number, or the like. This is not specifically limited inthis embodiment of this disclosure.

S202: The first device generates a first message, where the firstmessage includes the SID list identifier.

In this embodiment of this disclosure, the first message is, forexample, the first BGP update message or the second BGP update messagein the embodiment shown in FIG. 2 .

FIG. 6 is a schematic diagram of a TLV carrying an SID list identifier(ID) in a BGP update message according to an embodiment of thisdisclosure.

In FIG. 6 , the TLV includes an SID list ID field, where the SID list IDfield may occupy four bytes. Each SID list ID field may be placed beforea sub TLV that is used to carry the segment descriptor field of each SIDincluded in the SID list, so as to indicate that the sub TLVcorresponding to the SID list ID carried in the SID list ID field isplaced after the SID list ID field. Correspondingly, the sub TLV in FIG.6 reduces the quantity of SID fields carrying the SID, and therefore thequantity of bytes of the entire SID list is reduced. Certainly, it canbe understood that FIG. 6 does not limit the position of the SID list IDfield in the first message; and persons skilled in the art may alsodesign the position of SID list ID field based on an actual situation.

With reference to Table 2 and FIG. 6 , the first message may include twoSID list ID fields: an SID list ID field 1 and an SID list ID field 2.The SID list ID field 1 carries an SID list identifier A; and the SIDlist ID field 2 carries an SID list identifier B. The SID listidentifier A includes three sub TLVs, where the three sub TLVs includethe segment descriptor fields of SID1, SID2, and SID3, respectively. TheSID list identifier B includes two sub TLVs, where the two sub TLVsinclude the segment descriptor fields of SID4 and SID5, respectively.Each SID list ID field may be placed before or after the correspondingsub TLV in the first message. This is not specifically limited in thisembodiment of this disclosure.

It should be noted that the sub TLVs corresponding to the SID lists maybe arranged in the order of the SIDs in the SID lists, so that thesecond device can accurately find a sub TLV corresponding to an SID.

S203: The first device sends a first message to the second device.

S204: The second device receives the first message from the firstdevice.

S205: The second device obtains the SID list based on the SID listidentifier and a correspondence, where the correspondence includes acorrespondence between the SID list and the SID list identifier.

In this embodiment of this disclosure, the second device obtains thecorrespondence between the SID list and the SID list identifier inadvance, and obtains the SID list based on the SID list identifier andthe correspondence after receiving the first message.

For example, the second device obtains an SID list including SID1, SID2and SID3 based on Table 2 and the SID list identifier A in the SID listID field 1 in the first message. After obtaining the SID list, thesecond device may obtain the sub TLVs corresponding to the SID listidentifier A in the first message, so as to extract values of thesegment descriptor fields from the sub TLVs. Because the sub TLVscorresponding to the SID list identifier A are arranged in the order ofthe SIDs in SID list1, the values of the segment descriptor fieldsextracted by the first device from all sub TLVs based on the order ofthe sub TLVs can correspond to the SIDs included in the SID list.

In this embodiment of this disclosure, because the SID list identifieris used to replace a plurality of SIDs included in the SID list, thelength of the SID list identifier is less than the length of theplurality of SIDs included in the SID list, so that the length of theSID list is reduced, and the first message can carry a larger quantityof SID lists.

For example, it is assumed that one SID list includes 10 SIDs, and theSID list ID field in the first message occupies four bytes. Then, thelength of the SID list is 9×10+16+4=110 bytes, and a message with amessage length of 4K bytes can carry a maximum of 4K/110≈36 SID lists(it is assumed that the SID lists are of the same length). As mentionedabove, only a maximum of 15 SID lists can be carried in the conventionalmanner. Therefore, the first message in this embodiment of thisdisclosure can carry a larger quantity of SID lists than in theconventional manner, thereby reducing a risk that the message istruncated or not sent, and improving efficiency and a success rate ofmessage transmission.

FIG. 7 is another flowchart of a message generation method according toan embodiment of this disclosure.

The following describes the message generation method provided in thisembodiment of this disclosure with reference to FIG. 2 and FIG. 7 . Themethod includes the following steps:

S301: A first device obtains a locator identifier corresponding to eachSID in an SID list, where a length of the locator identifier is lessthan a length of a locator.

In this embodiment of this disclosure, the locator identifier is used toidentify the locator part of an SID in the SID list.

In this embodiment of this disclosure, the first device may be, forexample, the controller 301 in the embodiment shown in FIG. 2 , and asecond device mentioned below may be, for example, the networkforwarding device 201 in the embodiment shown in FIG. 2 . Alternatively,the first device may be, for example, the network forwarding device 201in the embodiment shown in FIG. 2 , and the second device mentionedbelow may be the controller 301 in the embodiment shown in FIG. 2 .Alternatively, the first device may be, for example, the networkforwarding device 201 in the embodiment shown in FIG. 2 , and the seconddevice may be, for example, the network forwarding device 204 in theembodiment shown in FIG. 2 . Alternatively, the first device may be, forexample, the network forwarding device 204 in the embodiment shown inFIG. 2 , and the second device may be, for example, the networkforwarding device 201 in the embodiment shown in FIG. 2 .

In this embodiment of this disclosure, when the first device is acontroller, the first device may generate a corresponding identifier forthe locator part of an SID, or may obtain the locator identifierassigned by the network forwarding device corresponding to the SID. Inthe latter case, each network forwarding device pre-assigns its ownlocator identifier, then sends a correspondence between the locator partand the locator identifier to a headend (in FIG. 1 , the headend is thenetwork forwarding device 201) through flooding; and then the headendreports the received correspondence between the locator part and thelocator identifier from each network forwarding device to thecontroller. Alternatively, each network forwarding device may directlysend the correspondence between its own locator part and the locatoridentifier to the controller.

When the first device is a network forwarding device, the first devicemay receive the correspondence between the locator identifier and thelocator part of the SID that are pre-configured for each networkforwarding device, or may receive the correspondence delivered by thecontroller. This is not specifically limited in this embodiment of thisdisclosure.

Table 3 shows an example of the correspondence between the locator partand the locator identifier (ID).

TABLE 3 SID list Locator part Locator ID SID1 2000::1 A SID2 2000::2 BSID3 2000::3 C

In this embodiment of this disclosure, the locator identifier may be acharacter, a number, or the like. This is not specifically limited inthis embodiment of this disclosure.

S302: The first device generates a first message, where the firstmessage includes a locator identifier and a function part correspondingto each SID in the SID list.

In this embodiment of this disclosure, the first message is, forexample, the first BGP update message or the second BGP update messagein the embodiment shown in FIG. 2 .

In this embodiment of this disclosure, the first device may generate thefirst message after obtaining the locator identifier of the SID includedin the SID list. The first message may include a first field and asecond field, where the first field carries the locator identifier ofthe SID, and the second field carries the function part of the SID.

FIG. 8 is a schematic diagram of a TLV carrying an SID list in a BGPupdate message according to an embodiment of this disclosure. In FIG. 8, the first field is a locator ID field (marked in light gray in FIG. 8), which occupies four bytes; and the second field is a function (func)field (marked in dark gray in FIG. 8 ).

With reference to Table 3 and FIG. 8 , a value of the locator ID fieldincluded in a sub TLV corresponding to SID1 is 1, and a value of thefunc field is “::1”; a value of the locator ID field included in a subTLV corresponding to SID2 is 2, and a value of the func field is “::1”;and a value of the locator ID field included in a sub TLV correspondingto SID3 is 3, and a value of the func field is “::1”.

S303: The first device sends the first message to the second device.

S304: The second device receives the first message from the firstdevice.

S305: The second device obtains the locator part of each SID based onthe locator identifier corresponding to each SID and a correspondence.

S306: The second device obtains the SID list based on the locator partof each SID and the function part of each SID.

After obtaining the locator part and the function part of an SID, theSID can be obtained by placing the function part after the locator part.

For example, the second device obtains “2000::1” of the locator partbased on Table 3 and the value “1” of the locator ID field correspondingto SID1 in the first message, and then obtains “2000::1::1” of SID1based on the value “::1” of the func field corresponding to SID1; thesecond device obtains “2000::2” of the locator part based on Table 3 andthe value “2” of the locator ID field corresponding to SID2 in the firstmessage, and then obtains “2000::2::1” of SID2 based on the value “::1”of the func field corresponding to SID1; and the second device obtains“2000::3” of the locator part based on Table 3 and the value “3” of thelocator ID field corresponding to SID3 in the first message, and thenobtains “2000::3::1” of SID3 based on the value “::1” of the func fieldcorresponding to SID3.

In this embodiment of this disclosure, because the length of the locatoridentifier is less than the length of the locator part, the length ofthe SID list is reduced, and the first message may carry a largerquantity of SID lists than in the conventional manner, thereby improvingtransmission efficiency.

For example, it is assumed that one SID list includes 10 SIDs, thelocator part of each SID occupies 15 bytes, and the function part ofeach SID occupies one byte. If the locator part of each SID is replacedby a locator ID that occupies only four bytes, the length of one SIDlist is 14×10+16=156 bytes; and a message with a message length of 4Kbytes can carry a maximum of 4K/156≈25 SID lists (it is assumed that theSID lists are of the same length). As mentioned above, only a maximum of15 SID lists can be carried in the conventional manner. Therefore, thefirst message in this embodiment of this disclosure can carry a largerquantity of SID lists than in the conventional manner, thereby reducinga risk that the message is truncated or not sent, and improving asuccess rate of message transmission.

Correspondingly, referring to FIG. 9 , an embodiment of this disclosurefurther provides a message generation apparatus 900. The apparatus 900is configured to implement functions of the first device in theembodiment shown in FIG. 3 . The apparatus 900 includes an acquisitionunit 901, a generation unit 902, and a sending unit 903, where theacquisition unit 901 is configured to perform S101 in the embodimentshown in FIG. 3 ; the generation unit 902 is configured to perform S102in the embodiment shown in FIG. 3 ; and the sending unit 903 isconfigured to perform S103 in the embodiment shown in FIG. 3 .

The acquisition unit 901 is configured to obtain a segment identifierlist SID list, where the SID list includes a plurality of segmentidentifiers SIDs, the first N bits of the plurality of SIDs are thesame, and N is a positive integer.

The generation unit 902 is configured to generate a first message basedon the SID list, where the first message includes a first part and asecond part, the first part includes the first N bits of the pluralityof SIDs, and the second part includes bit N+1 to bit 128 of each of theplurality of SIDs.

The sending unit 903 is configured to send the first message to a seconddevice.

For related content of the message generation apparatus 900 provided inthis embodiment of this disclosure, reference may be made to thedescription of the first device in the embodiment shown in FIG. 3 , anddetails are not described herein again.

Referring to FIG. 10 , an embodiment of this disclosure provides amessage processing apparatus 1000. The apparatus 1000 is configured toimplement functions of the second device in the embodiment shown in FIG.3 . The apparatus 1000 includes a receiving unit 1001 and an acquisitionunit 1002, where the receiving unit 1001 and the acquisition unit 1002are configured to perform S104 in the embodiment shown in FIG. 3 .

The receiving unit 1001 is configured to receive a first message from afirst device, where the first message is used to carry a segmentidentifier list SID list, the SID list includes a plurality of segmentidentifiers SIDs, the first N bits of the plurality of SIDs are thesame, the first message includes a first part and a second part, thefirst part includes the first N bits of the plurality of SIDs in the SIDlist, the second part includes bit N+1 to bit 128 of each of theplurality of SIDs.

The acquisition unit 1002 is configured to obtain the SID list based onthe first part and the second part.

For related content of the message generation apparatus 1000 provided inthis embodiment of this disclosure, reference may be made to thedescription of the second device in the embodiment shown in FIG. 3 , anddetails are not described herein again.

Referring to FIG. 11 , an embodiment of this disclosure provides amessage generation apparatus 1100. The apparatus 1100 is configured toimplement functions of the first device in the embodiment shown in FIG.5 . The apparatus 1100 includes an acquisition unit 1101, a generationunit 1102, and a sending unit 1103, where the acquisition unit 1101 isconfigured to perform S201 in the embodiment shown in FIG. 5 ; thegeneration unit 1102 is configured to perform S202 in the embodimentshown in FIG. 5 ; and the sending unit 1103 is configured to performS203 in the embodiment shown in FIG. 5 .

The acquisition unit 1101 is configured to obtain a segment identifierlist SID list identifier, where the SID list identifier corresponds toan SID list.

The generation unit 1102 is configured to generate a first message,where the first message includes the SID list identifier.

The sending unit 1103 is configured to send the first message to asecond device.

For related content of the message generation apparatus 1100 provided inthis embodiment of this disclosure, reference may be made to thedescription of the first device in the embodiment shown in FIG. 5 , anddetails are not described herein again.

Referring to FIG. 12 , an embodiment of this disclosure provides amessage processing apparatus 1200. The apparatus 1200 is configured toimplement functions of the second device in the embodiment shown in FIG.5 . The apparatus 1200 includes a receiving unit 1201 and an acquisitionunit 1202, where the receiving unit 1201 is configured to perform S204in the embodiment shown in FIG. 5 ; and the acquisition unit 1202 isconfigured to perform S205 in the embodiment shown in FIG. 5 .

The receiving unit 1201 is configured to receive a first message from afirst device, where the first message includes a segment identifier listSID list identifier, and the SID list identifier corresponds to an SIDlist.

The acquisition unit 1202 is configured to obtain the SID list based onthe SID list identifier and a correspondence, where the correspondenceincludes a correspondence between the SID list and the SID listidentifier.

For related content of the message generation apparatus 1200 provided inthis embodiment of this disclosure, reference may be made to thedescription of the second device in the embodiment shown in FIG. 5 , anddetails are not described herein again.

Referring to FIG. 13 , an embodiment of this disclosure provides amessage generation apparatus 1300, where the apparatus 1300 isconfigured to implement functions of the first device in the embodimentshown in FIG. 7 . The apparatus 1300 includes an acquisition unit 1301,a generation unit 1302, and a sending unit 1303, where the acquisitionunit 1301 is configured to perform S301 in the embodiment shown in FIG.7 ; the generation unit 1302 is configured to perform S302 in theembodiment shown in FIG. 7 ; and the sending unit 1303 is configured toperform S303 in the embodiment shown in FIG. 7 .

The acquisition unit 1301 is configured to obtain a locator identifiercorresponding to each segment identifier SID in a segment identifierlist SID list, where the locator identifier is used to identify alocator part of an SID corresponding to the locator identifier, and alength of the locator identifier is less than a length of the locatorpart.

The generation unit 1302 is configured to generate a first message,where the first message includes a locator identifier corresponding toeach SID in the SID list and a function part of each SID.

The sending unit 1303 is configured to send the first message to asecond device.

For related content of the message generation apparatus 1300 provided inthis embodiment of this disclosure, reference may be made to thedescription of the first device in the embodiment shown in FIG. 7 , anddetails are not described herein again.

Referring to FIG. 14 , an embodiment of this disclosure provides amessage processing apparatus 1400. The apparatus 1400 is configured toimplement functions of the second device in the embodiment shown in FIG.7 . The apparatus 1400 includes a receiving unit 1401, a determiningunit 1402, and an acquisition unit 1403, where the receiving unit 1401is configured to perform S304 in the embodiment shown in FIG. 7 ; thedetermining unit 1402 is configured to perform S305 in the embodimentshown in FIG. 7 ; and the acquisition unit 1403 is configured to performS306 in the embodiment shown in FIG. 7 .

The receiving unit 1401 is configured to receive a first message from afirst device, where the first message includes a locator identifiercorresponding to each segment identifier SID in a segment identifierlist SID list and a function part of the SID, the locator identifier isused to identify a locator part of an SID corresponding to the locatoridentifier, and a length of the locator identifier is less than a lengthof the locator part.

The determining unit 1402 is configured to obtain the locator part ofeach SID based on the locator identifier corresponding to each SID and acorrespondence, where the correspondence includes a correspondencebetween the locator identifier and the locator part of each SID.

The acquisition unit 1403 is configured to obtain the SID list based onthe locator part of each SID and the function part of each SID.

For related content of the message generation apparatus 1400 provided inthis embodiment of this disclosure, reference may be made to thedescription of the second device in the embodiment shown in FIG. 7 , anddetails are not described herein again.

It should be noted that a hardware structure of a message generationdevice corresponding to the message generation apparatus 900, themessage generation apparatus 1100, and the message generation apparatus1300, and a hardware structure of a message processing devicecorresponding to the message processing apparatus 1000, the messageprocessing apparatus 1200, and the message processing apparatus 1400 maybe both the structure shown in FIG. 15 . FIG. 15 is a schematicstructural diagram of a device according to an embodiment of thisdisclosure.

As shown in FIG. 15 , the device 1500 includes a processor 1510, acommunications interface 1520, and a memory 1530. The device 1500 mayinclude one or more processors 1510. In FIG. 15 , one processor is usedas an example. In this embodiment of this disclosure, the processor1510, the communications interface 1520, and the memory 1530 may beconnected using a bus system or another method. In FIG. 15 , aconnection based on a bus system 1040 is used as an example.

The processor 1510 may be a central processing unit (CPU), a networkprocessor (NP), or a combination of a CPU and an NP. The processor 1510may further include a hardware chip. The hardware chip may be anapplication-specific integrated circuit (ASIC), a programmable logicdevice (PLD), or a combination thereof. The PLD may be a complexprogrammable logic device (CPLD), a field-programmable gate array(FPGA), a generic array logic (GAL), or any combination thereof.

The memory 1530 may include a volatile memory, such as a random-accessmemory (RAM). The memory 1530 may also include a non-volatile memory,such as a flash memory, a hard disk drive (HDD), or a solid-state drive(SSD). The memory 1530 may also include a combination of memories of theforegoing types.

Optionally, the memory 1530 stores an operating system and a program, anexecutable module or a data structure, or a subset thereof, or anextended set thereof, where the program may include various operationinstructions for implementing various operations. The operating systemmay include various system programs for implementing various basicservices and processing hardware-based tasks. The processor 1510 mayread the program in the memory 1530 to implement the message generationmethod or the message processing method provided in the embodiments ofthis disclosure.

The bus system 1040 may be a peripheral component interconnect (PCI)bus, an extended industry standard architecture (EISA) bus, or the like.The bus system 1040 may be classified into an address bus, a data bus, acontrol bus, and the like. For ease of representation, only one thickline is used to represent the bus in FIG. 15 , but this does not meanthat there is only one bus or only one type of bus.

An embodiment of this disclosure further provides a message generationsystem, where the system includes a first device and a second device.The first device in the system may perform processing steps of the firstdevice in the embodiment shown in FIG. 3 , or correspondingly, the firstdevice in the system is the message generation apparatus 900 in theembodiment shown in FIG. 9 . The second device in the system may performprocessing steps of the second device in the embodiment shown in FIG. 3, or correspondingly, the second device in the system is the messageprocessing apparatus 1000 in the embodiment shown in FIG. 10 .

An embodiment of this disclosure further provides a message generationsystem, where the system includes a first device and a second device.The first device in the system may perform processing steps of the firstdevice in the embodiment shown in FIG. 5 , or correspondingly, the firstdevice in the system is the message generation apparatus 1100 in theembodiment shown in FIG. 11 . The second device in the system mayperform processing steps of the second device in the embodiment shown inFIG. 5 , or correspondingly, the second device in the system is themessage processing apparatus 1200 in the embodiment shown in FIG. 12 .

An embodiment of this disclosure further provides a message generationsystem, where the system includes a first device and a second device.The first device in the system may perform processing steps of the firstdevice in the embodiment shown in FIG. 7 , or correspondingly, the firstdevice in the system is the message generation apparatus 1300 in theembodiment shown in FIG. 13 . The second device in the system mayperform processing steps of the second device in the embodiment shown inFIG. 7 , or correspondingly, the second device in the system is themessage processing apparatus 1400 in the embodiment shown in FIG. 14 .

An embodiment of this disclosure further provides a computer-readablestorage medium, where the computer-readable storage medium includes aninstruction, and when the instruction is run on a computer, the computeris enabled to perform the message generation method that is provided inthe foregoing method embodiments and that is performed by the firstdevice.

An embodiment of this disclosure further provides a computer-readablestorage medium, where the computer-readable storage medium includes aninstruction, and when the instruction is run on a computer, the computeris enabled to perform the message processing method that is provided inthe foregoing method embodiments and that is performed by the seconddevice.

An embodiment of this disclosure further provides a computer programproduct including an instruction, where when the computer programproduct runs on a computer, the computer is enabled to perform themessage generation method that is provided in the foregoing methodembodiments and that is performed by the first device.

An embodiment of this disclosure further provides a computer programproduct including an instruction, where when the computer programproduct runs on a computer, the computer is enabled to perform themessage processing method that is provided in the foregoing methodembodiments and that is performed by the second device.

In the specification, claims, and accompanying drawings of thisdisclosure, the terms “first”, “second”, “third”, “fourth”, and so on(if existent) are intended to distinguish between similar objects but donot necessarily indicate a specific order or sequence. It should beunderstood that the data termed in such a way are interchangeable inproper circumstances so that the embodiments of the present applicationdescribed herein can be implemented in other orders than the orderillustrated or described herein. In addition, the terms “include”,“contain” and any other variants mean to cover the non-exclusiveinclusion, for example, a process, method, system, product, or devicethat includes a list of steps or units is not necessarily limited tothose units, but may include other units not expressly listed orinherent to such a process, method, system, product, or device.

In this disclosure, “at least one” means one or more, and “a pluralityof” means two or more. “At least one of the following” or a similarexpression thereof indicates any combination of the following, andincludes any combination of one or more of the following. For example,at least one of a, b, or c may indicate: a, b, c, a-b, a-c, b-c, ora-b-c, where a, b, and c may indicate a singular or plural form. In thisdisclosure, “A and/or B” is considered to include A alone, B alone, andA+B.

It may be clearly understood by persons skilled in the art that, for thepurpose of convenient and brief description, for a detailed workingprocess of the foregoing system, apparatus, and unit, reference may bemade to a corresponding process in the foregoing method embodiments, anddetails are not described herein again.

In the several embodiments provided in this disclosure, it should beunderstood that the disclosed system, apparatus, and method may beimplemented in other manners. For example, the described apparatusembodiment is merely an example. For example, the unit division ismerely logical function division and may be other division in actualimplementation. For example, a plurality of units or components may becombined or integrated into another system, or some features may beignored or not performed. In addition, the displayed or discussed mutualcouplings or direct couplings or communication connections may beimplemented by using some interfaces. The indirect couplings orcommunication connections between the apparatuses or units may beimplemented in electronic, mechanical, or other forms.

The units described as separate parts may or may not be physicallyseparate, and parts displayed as units may or may not be physical units,may be located in one position, or may be distributed on a plurality ofnetwork units. Some or all of the units may be selected based on actualrequirements to achieve the objectives of the solutions of theembodiments.

In addition, functional units in the embodiments of this disclosure maybe integrated into one processing unit, or each of the units may existalone physically, or two or more units are integrated into one unit. Theintegrated unit may be implemented in a form of hardware, or may beimplemented in a form of a software functional unit.

When the integrated unit is implemented in the form of a softwarefunctional unit and sold or used as an independent product, theintegrated unit may be stored in a computer-readable storage medium.Based on such an understanding, the technical solutions of thisdisclosure essentially, or the part contributing to the prior art, orall or some of the technical solutions may be implemented in the form ofa software product. The software product is stored in a storage mediumand includes several instructions for instructing a computer device(which may include a personal computer, a server, or a network device)to perform all or some of the steps of the methods described in theembodiments of this disclosure. The foregoing storage medium includes:any medium that can store program code, such as a USB flash drive, aremovable hard disk, a read-only memory (ROM), a random access memory(RAM), a magnetic disk, or an optical disc.

Persons skilled in the art should be aware that in the foregoing one ormore examples, functions described in the present application may beimplemented by hardware, software, firmware, or any combination thereof.When the present application is implemented by software, the foregoingfunctions may be stored in a computer-readable medium or transmitted asone or more instructions or code in the computer-readable medium. Thecomputer-readable medium includes a computer storage medium and acommunications medium, where the communications medium includes anymedium that enables a computer program to be transmitted from one placeto another. The storage medium may be any available medium accessible toa general-purpose or dedicated computer.

The objectives, technical solutions, and beneficial effects of thepresent application have been described in further detail in theforegoing specific implementations. It should be understood that theforegoing descriptions are merely specific implementations of thepresent application.

The foregoing embodiments are merely intended for describing thetechnical solutions of the present application, but not for limiting thepresent application. Although the present application is described indetail with reference to the foregoing embodiments, persons of ordinaryskill in the art should understand that they may still makemodifications to the technical solutions described in the foregoingembodiments or make equivalent replacements to some technical featuresthereof, without departing from the scope of the technical solutions ofthe embodiments of the present application.

1. A message generation method, obtaining, by a first device, a locatoridentifier corresponding to each of one or more segment identifiers(SIDs) in a segment identifier list wherein the locator identifier isused to identify a locator part of an SID corresponding to the locatoridentifier, and a length of the locator identifier is less than a lengthof the locator part; generating, by the first device, a first message,wherein the first message comprises (i) the locator identifiercorresponding to each of the one or more SIDs in the SID list and (ii) afunction part of each of the one or more SIDs; and sending, by the firstdevice, the first message to a second device.
 2. The method according toclaim 1, further comprising: sending, by the first device, acorrespondence to the second device, wherein the correspondencecomprises a correspondence between the locator identifier and thelocator part of each of the one or more SIDs.
 3. The method according toclaim 1, wherein a length of the locator identifier is less than alength of the locator part of an SID corresponding to the locatoridentifier.
 4. The method according to claim 1, wherein the first deviceis a controller, and the second device is a network forwarding device;and the method further comprises: receiving, by the first device,segment description information of at least one of the one or more SIDsin the SID list from the second device.
 5. The method according to claim1, wherein the first device is a network forwarding device, the seconddevice is a controller, and the first message further comprises segmentdescription information of at least one of the one or more SIDs in theSID list.
 6. The method according to claim 1, wherein the first messageis a Border Gateway Protocol (BGP) update message.
 7. A messageprocessing method comprising: receiving, by a second device, a firstmessage from a first device, wherein the first message comprises (i) alocator identifier corresponding to each of one or more segmentidentifiers in a segment identifier list (SID list) and (ii) a functionpart of the SID, the locator identifier is used to identify a locatorpart of an SID corresponding to the locator identifier, and a length ofthe locator identifier is less than a length of the locator part;obtaining, by the second device, the locator part of each of the one ormore SIDs based on the locator identifier corresponding to each of theone or more SIDs and a correspondence, wherein the correspondencecomprises a correspondence between the locator identifier and thelocator part of each of the one or more SIDs; and obtaining, by thesecond device, the SID list based on the locator part of each of the oneor more SIDs and the function part of each of the one or more SIDs. 8.The method according to claim 7, wherein the method further comprises:receiving, by the second device, the correspondence from the firstdevice.
 9. The method according to claim 7, wherein the first device isa controller, the second device is a network forwarding device, and thefirst message further comprises segment description information of atleast one of the one or more SIDs, in the SID list.
 10. The methodaccording to claim 7, wherein the first device is a network forwardingdevice, and the second device is a controller; and the method furthercomprises: receiving, by the first device, segment descriptioninformation of at least one of the one or more SIDs in the SID list fromthe second device.
 11. The method according to claim 7, wherein thefirst message is a Border Gateway Protocol (BGP) update message.
 12. Amessage generation apparatus applied to a first device, the apparatuscomprising: at least one processor; and one or more memories coupled tothe at least one processor and storing instructions for execution by theat least one processor, the instructions instruct the at least oneprocessor to cause the apparatus to: obtain a locator identifiercorresponding to each of one or more segment identifier (SIDs) in asegment identifier list (SID list), wherein the locator identifier isused to identify a locator part of an SID corresponding to the locatoridentifier, and a length of the locator identifier is less than a lengthof the locator part; generate a first message, wherein the first messagecomprises (i) a locator identifier corresponding to each of the one ormore SIDs in the SID list and (ii) a function part of each of the one ormore SIDs; and send the first message to a second device.
 13. Theapparatus according to claim 12, wherein the instructions instruct theat least one processor to cause the apparatus to: send a correspondenceto the second device, wherein the correspondence comprises acorrespondence between the locator identifier and the locator part ofeach of the one or more SIDs.
 14. The apparatus according to claim 12,wherein the first device is a controller, and the second device is anetwork forwarding device; and the instructions instruct the at leastone processor to cause the apparatus to: receive segment descriptioninformation of at least one of the one or more SIDs in the SID list fromthe second device.
 15. The apparatus according to claim 12, wherein thefirst device is a network forwarding device, the second device is acontroller, and the first message further comprises segment descriptioninformation of at least one of the one or more SIDs in the SID list. 16.The apparatus according to claim 12, wherein the first message is aBorder Gateway Protocol (BGP) update message.
 17. A message processingapparatus, wherein the apparatus is applied to a second device, and theapparatus comprises: at least one processor; and one or more memoriescoupled to the at least one processor and storing instructions forexecution by the at least one processor, the instructions instruct theat least one processor to cause the apparatus to: receive a firstmessage from a first device, wherein the first message comprises alocator identifier corresponding to each of one or more segmentidentifier (SIDs) in a segment identifier list (SID list) and (ii) afunction part of the SID, the locator identifier is used to identify alocator part of an SID corresponding to the locator identifier, and alength of the locator identifier is less than a length of the locatorpart; obtain the locator part of each of the one or more SIDs based onthe locator identifier corresponding to each of the one or more SIDs anda correspondence, wherein the correspondence comprises a correspondencebetween the locator identifier and the locator part of each of the oneor more SIDs; and obtain the SID list based on the locator part of eachof the one or more SIDs and the function part of each of the one or moreSIDs.
 18. The apparatus according to claim 17, wherein the instructionsinstruct the at least one processor to cause the apparatus to: receivethe correspondence from the first device.
 19. The apparatus according toclaim 17, wherein the first device is a controller, the second device isa network forwarding device, and the first message further comprisessegment description information of at least one of the one or more SIDsin the SID list.
 20. The apparatus according to claim 17, wherein thefirst device is a network forwarding device, and the second device is acontroller; and wherein the instructions instruct the at least oneprocessor to cause the apparatus to: receive, segment descriptioninformation of at least one of the one or more SIDs in the SID list fromthe second device.